High data reliability, high speed of memory access, and reduced chip size are features that are demanded from semiconductor memory.
A dynamic random access memory (DRAM), which is a typical semiconductor memory device, stores information by charges accumulated in cell capacitors, and, therefore, the information is lost unless refresh operations are periodically carried out.
The information may be further lost as bit errors due to Row Hammer effects and/or Ras-Clobber effects. In either case, such bit errors may take place on one or more memory cells each coupled to a non-selected word line that is adjacent to a selected word line subjected to Row Hammer (indicating that the selected word line is driven to an active level a great number of times successively) or Ras-Clobber (indicating that the selected word line is driven to the active level continuously for a considerably long period). The memory cells coupled to such non-selected word line are thus required to be refreshed prior to losing the information stored therein. On the other hand, auto-refresh (AREF) commands indicating refresh operations are periodically issued from a control device such as a memory controller, which controls a DRAM. The AREF commands are provided from the control device at a frequency that all the word lines are certainly refreshed once in the one refresh cycle (for example, 64 msec). However, refresh addresses according to the AREF commands are determined by a refresh counter provided in DRAM. For this reason, refresh operations responsive to the AREF commands may not prevent bit errors due to Row Hammer effects and/or Ras-Clobber effects. Thus, steal-refresh is carried out to perform Row Hammer refresh (RHR) operations in which some of refresh operations responsive to the AREF commands are stolen therefrom and then allocated to the RHR operations to refresh the memory cells coupled to the non-selected word line that is adjacent to the selected word line subjected to Row Hammer and/or Ras-Clobber.
One way to dynamically control the steal-refresh is time-based random sampling of a row address by randomizing timings for sampling. Because sampling timings (activations of an ArmSample signal) are determined by an internal oscillator providing an oscillation signal (SrefOsc), the time-based random sampling may have empty-hits when there is no memory access due to absence of active commands with row addresses for reading or writing data.